package jsyf.oa.service.system;

import com.alibaba.fastjson.JSONObject;
import jsyf.com.util.FastJsonConvert;
import jsyf.oa.dao.system.LogsDao;
import jsyf.oa.facade.system.LogsFacade;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;

import java.util.List;

@Service
@Transactional(rollbackFor = Exception.class)
@com.alibaba.dubbo.config.annotation.Service(protocol = {"dubbo"})
public class LogsService implements LogsFacade {

    @Autowired
    LogsDao logsDao;

    @Override
    public List<JSONObject> getColumnLogs(String jsonData) {
        JSONObject jsonParams = FastJsonConvert.convertJSONToObject(jsonData, JSONObject.class);
        String tableName = jsonParams.getString("tableName");
        String columnName = jsonParams.getString("columnName");
        String updateId = jsonParams.getString("updateId");
        return logsDao.getColumnLogs(tableName, columnName, updateId);
    }

    @Override
    public List<JSONObject> getTableLogs(String jsonData) {
        JSONObject jsonParams = FastJsonConvert.convertJSONToObject(jsonData, JSONObject.class);
        StringBuffer condition = new StringBuffer();
        String mainKey = jsonParams.getString("mainKey");
        String id = jsonParams.getString("id");
        String tableName = jsonParams.getString("tableName");
        String columnName = jsonParams.getString("columnName");
        return logsDao.getTableLogs(tableName, mainKey, columnName, id);
    }

    @Override
    public JSONObject getTableLogsNum(String jsonData) {
        JSONObject jsonParams = FastJsonConvert.convertJSONToObject(jsonData, JSONObject.class);
        String mainKey = jsonParams.getString("mainKey");
        String id = jsonParams.getString("id");
        String tableName = jsonParams.getString("tableName");
        String columnName = jsonParams.getString("columnName");
        JSONObject jsonObject = logsDao.getTableLogsNum(tableName, mainKey, columnName, id);
        //返回最新修改时间，前端判断加颜色
        List<JSONObject> newObject=logsDao.getTableLogs(tableName, mainKey, columnName, id);
        JSONObject result = new JSONObject();
        if(newObject.size()>0){
            result.put("updateTime", newObject.get(0).getString("updateTime").substring(0,10));
        }
        if (null != jsonObject && Integer.parseInt(jsonObject.getString("num")) > 1) {
            result.put("result", true);
        } else {
            result.put("result", false);

        }
        return result;
    }

    @Override
    public JSONObject getColumnLogsNum(String jsonData) {
        JSONObject jsonParams = FastJsonConvert.convertJSONToObject(jsonData, JSONObject.class);
        String tableName = jsonParams.getString("tableName");
        String columnName = jsonParams.getString("columnName");
        String updateId = jsonParams.getString("updateId");
        JSONObject jsonObject = logsDao.getColumnLogsNum(tableName, columnName, updateId);
        //返回最新修改时间，前端判断加颜色
        List<JSONObject> newObject=logsDao.getColumnLogs(tableName, columnName, updateId);
        JSONObject result = new JSONObject();
        if(newObject.size()>0){
            result.put("updateTime", newObject.get(0).getString("updateTime").substring(0,10));
        }
        if (null != jsonObject && Integer.parseInt(jsonObject.getString("num")) > 1) {
            result.put("result", true);
        } else {
            result.put("result", false);
        }
        return result;
    }

}
